package com.account.core.dto;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.Date;

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class UserCreateRequest {
    private String username;
    private String email;
    private String password;
    @JsonProperty("first_name")
    @JsonAlias({"firstName", "first_name"})
    private String firstName;
    @JsonProperty("last_name")
    @JsonAlias({"lastName", "last_name"})
    private String lastName;
    @JsonProperty("user_type")
    @JsonAlias({"userType", "user_type"})
    private String userType;  // "teacher" or "student"
    @JsonProperty("teacher_code")
    @JsonAlias({"teacherCode", "teacher_code"})
    private String teacherCode;  // optional
    @JsonProperty("usage_count")
    @JsonAlias({"usageCount", "usage_count"})
    private Long usageCount;
    private String school;
    @JsonProperty("expiration_date")
    @JsonAlias({"expirationDate", "expiration_date"})
    private Date expirationDate;
    private Long count;
}
